#ifndef ROBOT_INTERFACE_H
#define ROBOT_INTERFACE_H
#include <ros/ros.h>
#include "common.h"
#include "robot_control/Trajectory.h"
#include <nav_msgs/Odometry.h>

#include <move_base_msgs/MoveBaseAction.h>
#include <actionlib/client/simple_action_client.h>

typedef actionlib::SimpleActionClient<move_base_msgs::MoveBaseAction> MoveBaseClient;

#define DEFAULT_PRIORITY 3

class PlanarMapping;

class RobotInterface {

 public:
	RobotInterface(PlanarMapping *pm);
	void setMotion(double linear, double rotation) const;
	int robot_type_;
 
 protected:
	void TwenteCallback(const robot_control::TrajectoryConstPtr& msg);
	void P3dxCallback(const nav_msgs::OdometryConstPtr& msg);
  ros::NodeHandle nh_;
  ros::Publisher motion_pub_;
  ros::Subscriber odometry_sub_;

	PlanarMapping *mapper_;
	mutable MoveBaseClient move_client_;
};

#endif

